package fr.afcepf.atod21.implementations;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebService;

import fr.afcepf.atod21.dto.ProduitCommandeFournisseurDTO;
import fr.afcepf.atod21.interfaces.IFacadeService;
import fr.afcepf.atod21.interfaces.IGestionCommandeFournisseur;
import fr.afcepf.atod21.ws.fournisseur.CommandeFournisseur;
import fr.afcepf.atod21.ws.gestionstock.ClassListeProduits;
import fr.afcepf.atod21.ws.gestionstock.EtatproduitStock;
import fr.afcepf.atod21.ws.gestionstock.ProduitStock;
import fr.afcepf.atod21.ws.gestionstock.ProduitStockDTO;

@WebService(endpointInterface = "fr.afcepf.atod21.interfaces.IFacadeService")
public class FacadeImpl implements IFacadeService {
	
	GestionStockProduit gestStockProd = new GestionStockProduit();
	IGestionCommandeFournisseur gestCommandeFournisseur = new GestionCommandeFournisseur();

	@Override
	@WebMethod
	public ProduitStockDTO updateProduitFacade(int idProduitMIU, int qtt) {
		return gestStockProd.updateProduit(idProduitMIU, qtt);
	}

	@Override
	@WebMethod
	public ProduitStockDTO ajoutProduitStockDTP(ProduitStockDTO pdtStockDTO) {
		return gestStockProd.ajoutProduit(pdtStockDTO);
	}

	@Override
	public void lancementCommandeFournisseur() {
		gestCommandeFournisseur.lancementCommandeFournisseur();
		
	}

	@Override
	public List<ProduitStockDTO> receptionLivraisonCommandeFournisseur(
			CommandeFournisseur commandeRecue) {
		
		return gestCommandeFournisseur.receptionLivraisonCommandeFournisseur(commandeRecue);
	}

	@Override
	public CommandeFournisseur creerCommande(List<ProduitCommandeFournisseurDTO> pdtACommander) {
		
		return gestCommandeFournisseur.creerCommande(pdtACommander);
	}

	@Override
	public List<ProduitStockDTO> recupererListePdtsDeCommande(
			CommandeFournisseur commande) {
		
		return gestCommandeFournisseur.recupererListePdtsDeCommande(commande);
	}

	@Override
	@WebMethod
	public ProduitStockDTO RecupProduitStockDTP(int id) {
		ProduitStockDTO pdtStockDTO = gestStockProd.recupererProduit(id);
	
		return pdtStockDTO;
	}

	@Override
	public ClassListeProduits recupererListeProduitACommander() {
		
		return gestCommandeFournisseur.recupererListeProduitACommander();
	}

	@Override
	public void envoieEtReceptionCommandeAuFournisseur(
			CommandeFournisseur commandeEnvoyeAuFournisseur) {
		
		gestCommandeFournisseur.envoieEtReceptionCommandeAuFournisseur(commandeEnvoyeAuFournisseur);
		
	}

	@Override
	public ProduitStockDTO miseAJourEtatProduit(
			ProduitStockDTO produitAMettreAJour,
			EtatproduitStock etatDuProduitAMettreAJour) {
		// TODO Auto-generated method stub
		return gestStockProd.miseAJourEtatProduit(produitAMettreAJour, etatDuProduitAMettreAJour);
	}

	@Override
	public ProduitStockDTO ajoutQtePdt(ProduitStockDTO pdtStock, int qtt_Produit) {
		// TODO Auto-generated method stub
		return gestStockProd.ajoutQtePdt(pdtStock, qtt_Produit);
	}

}
